package com.achievement.domain.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * BookDTO
 */

@Data
@ApiModel(value = "新增学术著作信息")
public class BookDTO {

    /**
     * ID
     */
    @ApiModelProperty(value = "ID")
    private String id;

    /**
     * 著作名称
     */
    @ApiModelProperty(value = "著作名称")
    private String name;

    /**
     * code
     */
    @ApiModelProperty(value = "code")
    private String code;

    /**
     * 所属单位
     */
    @ApiModelProperty(value = "所属单位")
    private String unitId;

    /**
     * divisionId
     */
    @ApiModelProperty(value = "divisionId")
    private String divisionId;

    /**
     * 教育部统计归属
     */
    @ApiModelProperty(value = "教育部统计归属")
    private String subjectClassId;

    /**
     * 著作类别id
     */
    @ApiModelProperty(value = "著作类别id")
    private String typeId;

    /**
     * 论文类型
     */
    @ApiModelProperty(value = "论文类型")
    private String modeId;

    /**
     * 出版单位
     */
    @ApiModelProperty(value = "出版单位")
    private String publishUnit;

    /**
     * ISBN号
     */
    @ApiModelProperty(value = "ISBN号")
    private String isbn;

    /**
     * 出版日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "出版日期")
    private Date publishDate;

    /**
     * 出版地
     */
    @ApiModelProperty(value = "出版地")
    private String publishAddressId;

    /**
     * 项目来源
     */
    @ApiModelProperty(value = "项目来源")
    private String projectSourceId;

    /**
     * 一级学科
     */
    @ApiModelProperty(value = "一级学科")
    private String subjectId;

    /**
     * 是否翻译为外文
     */
    @ApiModelProperty(value = "是否翻译为外文")
    private String isTranslated;

    /**
     * 语种
     */
    @ApiModelProperty(value = "语种")
    private String languageId;

    /**
     * 总字数
     */
    @ApiModelProperty(value = "总字数")
    private BigDecimal wordNumber;

    /**
     * authorNumber
     */
    @ApiModelProperty(value = "authorNumber")
    private Integer authorNumber;

    /**
     * 备注
     */
    @ApiModelProperty(value = "备注")
    private String note;

    /**
     * assessValue
     */
    @ApiModelProperty(value = "assessValue")
    private BigDecimal assessValue;

    /**
     * 第一作者
     */
    @ApiModelProperty(value = "第一作者")
    private String firstAuthorName;

    /**
     * 第一作者职工号
     */
    @ApiModelProperty(value = "第一作者职工号")
    private String firstAuthorAccount;

    /**
     * 职称
     */
    @ApiModelProperty(value = "职称")
    private String firstAuthorTitleId;

    /**
     * 学历
     */
    @ApiModelProperty(value = "学历")
    private String firstAuthorEduLevelId;

    /**
     * 学位
     */
    @ApiModelProperty(value = "学位")
    private String firstAuthorEduDegreeId;

    /**
     * 出版社级别
     */
    @ApiModelProperty(value = "出版社级别")
    private String publishLevel;

    /**
     * CIP号
     */
    @ApiModelProperty(value = "CIP号")
    private String cip;

    /**
     * 是否延期
     */
    @ApiModelProperty(value = "是否延期")
    private String isRecension;

    /**
     * 学校署名
     */
    @ApiModelProperty(value = "学校署名")
    private String schoolSign;

    /**
     * 电子版附件
     */
    @ApiModelProperty(value = "电子版附件")
    private String fileIds;


    /**
     * firstAuthorSexid
     */
    @ApiModelProperty(value = "firstAuthorSexid")
    private String firstAuthorSexid;

    /**
     * firstAuthorId
     */
    @ApiModelProperty(value = "firstAuthorId")
    private String firstAuthorId;

    /**
     * authorpids
     */
    @ApiModelProperty(value = "authorpids")
    private String authorpids;

    /**
     * authorunitids
     */
    @ApiModelProperty(value = "authorunitids")
    private String authorunitids;

    /**
     * completedatastatus
     */
    @ApiModelProperty(value = "completedatastatus")
    private String completedatastatus;

    /**
     * 学术著作作者信息列表
     */
    @ApiModelProperty(value = "学术著作作者信息列表")
    private List<BookAuthorDTO> authorList;

    @ApiModelProperty(value = "提交类型 -> -1:暂存,1:提交,2:保存并通过")
    private Integer submitType;

    private Boolean isAuditor;

    private String taskId;

    /**
     * 审核状态
     */
    @ApiModelProperty(value = "审核状态")
    private String checkstatus;
}
